add_entrypoint_object(
  canonicalize
  SRCS
    canonicalize.cpp
  HDRS
    ../canonicalize.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
)

add_entrypoint_object(
  canonicalizef
  SRCS
    canonicalizef.cpp
  HDRS
    ../canonicalizef.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
)

add_entrypoint_object(
  canonicalizef16
  SRCS
    canonicalizef16.cpp
  HDRS
    ../canonicalizef16.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
)

add_entrypoint_object(
  canonicalizef128
  SRCS
    canonicalizef128.cpp
  HDRS
    ../canonicalizef128.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
)

add_entrypoint_object(
  canonicalizel
  SRCS
    canonicalizel.cpp
  HDRS
    ../canonicalizel.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
)

add_entrypoint_object(
  iscanonical
  SRCS
    iscanonical.cpp
  HDRS
    ../iscanonical.h
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  iscanonicalf
  SRCS
    iscanonicalf.cpp
  HDRS
    ../iscanonicalf.h
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  iscanonicall
  SRCS
    iscanonicall.cpp
  HDRS
    ../iscanonicall.h
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  iscanonicalf16
  SRCS
    iscanonicalf16.cpp
  HDRS
    ../iscanonicalf16.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
)

add_entrypoint_object(
  iscanonicalf128
  SRCS
    iscanonicalf128.cpp
  HDRS
    ../iscanonicalf128.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
)

add_entrypoint_object(
  ceil
  SRCS
    ceil.cpp
  HDRS
    ../ceil.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
  FLAGS
    ROUND_OPT
)

add_entrypoint_object(
  ceilf
  SRCS
    ceilf.cpp
  HDRS
    ../ceilf.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
  FLAGS
    ROUND_OPT
)

add_entrypoint_object(
  ceill
  SRCS
    ceill.cpp
  HDRS
    ../ceill.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  ceilf16
  SRCS
    ceilf16.cpp
  HDRS
    ../ceilf16.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.cast
    libc.src.__support.FPUtil.nearest_integer_operations
    libc.src.__support.macros.properties.cpu_features
    libc.src.__support.macros.properties.types
  FLAGS
    ROUND_OPT
)

add_entrypoint_object(
  ceilf128
  SRCS
    ceilf128.cpp
  HDRS
    ../ceilf128.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  daddl
  SRCS
    daddl.cpp
  HDRS
    ../daddl.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.generic.add_sub
)

add_entrypoint_object(
  daddf128
  SRCS
    daddf128.cpp
  HDRS
    ../daddf128.h
  COMPILE_OPTIONS
    -O3
 DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.generic.add_sub
)

add_entrypoint_object(
  ddivl
  SRCS
    ddivl.cpp
  HDRS
    ../ddivl.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.generic.div
)

add_entrypoint_object(
  ddivf128
  SRCS
    ddivf128.cpp
  HDRS
    ../ddivf128.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.generic.div
)

add_entrypoint_object(
  dfmaf128
  SRCS
    dfmaf128.cpp
  HDRS
    ../dfmaf128.h
  DEPENDS
    libc.src.__support.FPUtil.fma
    libc.src.__support.macros.properties.types
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  dfmal
  SRCS
    dfmal.cpp
  HDRS
    ../dfmal.h
  DEPENDS
    libc.src.__support.FPUtil.fma
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  dsqrtl
  SRCS
    dsqrtl.cpp
  HDRS
    ../dsqrtl.h
  DEPENDS
    libc.src.__support.FPUtil.generic.sqrt
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  dsqrtf128
  SRCS
    dsqrtf128.cpp
  HDRS
    ../dsqrtf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.generic.sqrt
  COMPILE_OPTIONS
    -O3
)


add_entrypoint_object(
  dsubf128
  SRCS
    dsubf128.cpp
  HDRS
    ../dsubf128.h
  DEPENDS
    libc.src.__support.FPUtil.generic.add_sub
    libc.src.__support.macros.properties.types
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  dsubl
  SRCS
    dsubl.cpp
  HDRS
    ../dsubl.h
  DEPENDS
    libc.src.__support.FPUtil.generic.add_sub
  COMPILE_OPTIONS
    -O3
)

add_header_library(
  range_reduction
  HDRS
    range_reduction.h
    range_reduction_fma.h
  DEPENDS
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.fma
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.nearest_integer
    libc.src.__support.common
)

add_header_library(
  range_reduction_double
  HDRS
    range_reduction_double_common.h
    range_reduction_double_fma.h
    range_reduction_double_nofma.h
  DEPENDS
    libc.src.__support.FPUtil.double_double
    libc.src.__support.FPUtil.dyadic_float
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.fma
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.nearest_integer
    libc.src.__support.common
    libc.src.__support.integer_literals
)

add_header_library(
  sincosf_utils
  HDRS
    sincosf_utils.h
  DEPENDS
    .range_reduction
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.common
)

add_header_library(
  sincosf16_utils
  HDRS
    sincosf16_utils.h
  DEPENDS
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.FPUtil.nearest_integer
    libc.src.__support.common
)

add_header_library(
  sincos_eval
  HDRS
    sincos_eval.h
  DEPENDS
    libc.src.__support.FPUtil.double_double
    libc.src.__support.FPUtil.dyadic_float
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.integer_literals
)

add_entrypoint_object(
  cos
  SRCS
    cos.cpp
  HDRS
    ../cos.h
  DEPENDS
    .range_reduction_double
    .sincos_eval
    libc.hdr.errno_macros
    libc.src.errno.errno
    libc.src.__support.FPUtil.double_double
    libc.src.__support.FPUtil.dyadic_float
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  cosf
  SRCS
    cosf.cpp
  HDRS
    ../cosf.h
  DEPENDS
    .sincosf_utils
    libc.src.errno.errno
    libc.src.__support.FPUtil.basic_operations
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.fma
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  cospif
  SRCS
    cospif.cpp
  HDRS
    ../cospif.h
  DEPENDS
    .sincosf_utils
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.fma
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  cospif16
  SRCS
    cospif16.cpp
  HDRS
    ../cospif16.h
  DEPENDS
    .sincosf16_utils
    libc.hdr.errno_macros
    libc.hdr.fenv_macros
    libc.src.__support.FPUtil.cast
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  sin
  SRCS
    sin.cpp
  HDRS
    ../sin.h
  DEPENDS
    .range_reduction_double
    .sincos_eval
    libc.hdr.errno_macros
    libc.src.errno.errno
    libc.src.__support.FPUtil.double_double
    libc.src.__support.FPUtil.dyadic_float
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  sinf
  SRCS
    sinf.cpp
  HDRS
    ../sinf.h
  DEPENDS
    .range_reduction
    .sincosf_utils
    libc.src.errno.errno
    libc.src.__support.FPUtil.basic_operations
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.fma
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  sincos
  SRCS
    sincos.cpp
  HDRS
    ../sincos.h
  DEPENDS
    .range_reduction_double
    .sincos_eval
    libc.hdr.errno_macros
    libc.src.errno.errno
    libc.src.__support.FPUtil.double_double
    libc.src.__support.FPUtil.dyadic_float
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  sinpif
  SRCS
    sinpif.cpp
  HDRS
    ../sinpif.h
  DEPENDS
    .sincosf_utils
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.fma
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.common
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  sincosf
  SRCS
    sincosf.cpp
  HDRS
    ../sincosf.h
  DEPENDS
    .range_reduction
    .sincosf_utils
    libc.src.errno.errno
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.fma
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  sinpif16
  SRCS
    sinpif16.cpp
  HDRS
    ../sinpif16.h
  DEPENDS
    .sincosf16_utils
    libc.hdr.errno_macros
    libc.hdr.fenv_macros
    libc.src.__support.FPUtil.cast
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  tan
  SRCS
    tan.cpp
  HDRS
    ../tan.h
  DEPENDS
    .range_reduction_double
    libc.hdr.errno_macros
    libc.src.errno.errno
    libc.src.__support.FPUtil.double_double
    libc.src.__support.FPUtil.dyadic_float
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  tanf
  SRCS
    tanf.cpp
  HDRS
    ../tanf.h
  DEPENDS
    .range_reduction
    .sincosf_utils
    libc.src.errno.errno
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.nearest_integer
    libc.src.__support.FPUtil.fma
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  tanpif16
  SRCS
    tanpif16.cpp
  HDRS
    ../tanpif16.h
  DEPENDS
    .sincosf16_utils
    libc.hdr.errno_macros
    libc.hdr.fenv_macros
    libc.src.__support.FPUtil.cast
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fabs
  SRCS
    fabs.cpp
  HDRS
    ../fabs.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
  FLAGS
    MISC_MATH_BASIC_OPS_OPT
)

add_entrypoint_object(
  fabsf
  SRCS
    fabsf.cpp
  HDRS
    ../fabsf.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
  FLAGS
    MISC_MATH_BASIC_OPS_OPT
)

add_entrypoint_object(
  fabsl
  SRCS
    fabsl.cpp
  HDRS
    ../fabsl.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fabsf16
  SRCS
    fabsf16.cpp
  HDRS
    ../fabsf16.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
    libc.src.__support.macros.properties.architectures
    libc.src.__support.macros.properties.compiler
  COMPILE_OPTIONS
    -O3
  FLAGS
    MISC_MATH_BASIC_OPS_OPT
)

add_entrypoint_object(
  fabsf128
  SRCS
    fabsf128.cpp
  HDRS
    ../fabsf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fadd
  SRCS
    fadd.cpp
  HDRS
    ../fadd.h
  DEPENDS
    libc.src.__support.FPUtil.generic.add_sub
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  faddl
  SRCS
    faddl.cpp
  HDRS
    ../faddl.h
  DEPENDS
    libc.src.__support.FPUtil.generic.add_sub
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  faddf128
  SRCS
    faddf128.cpp
  HDRS
    ../faddf128.h
  DEPENDS
    libc.src.__support.FPUtil.generic.add_sub
    libc.src.__support.macros.properties.types
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  trunc
  SRCS
    trunc.cpp
  HDRS
    ../trunc.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
  FLAGS
    ROUND_OPT
)

add_entrypoint_object(
  truncf
  SRCS
    truncf.cpp
  HDRS
    ../truncf.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
  FLAGS
    ROUND_OPT
)

add_entrypoint_object(
  truncl
  SRCS
    truncl.cpp
  HDRS
    ../truncl.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  truncf16
  SRCS
    truncf16.cpp
  HDRS
    ../truncf16.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.cast
    libc.src.__support.FPUtil.nearest_integer_operations
    libc.src.__support.macros.properties.cpu_features
    libc.src.__support.macros.properties.types
  FLAGS
    ROUND_OPT
)

add_entrypoint_object(
  truncf128
  SRCS
    truncf128.cpp
  HDRS
    ../truncf128.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  floor
  SRCS
    floor.cpp
  HDRS
    ../floor.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
  FLAGS
    ROUND_OPT
)

add_entrypoint_object(
  floorf
  SRCS
    floorf.cpp
  HDRS
    ../floorf.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
  FLAGS
    ROUND_OPT
)

add_entrypoint_object(
  floorl
  SRCS
    floorl.cpp
  HDRS
    ../floorl.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  floorf16
  SRCS
    floorf16.cpp
  HDRS
    ../floorf16.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.cast
    libc.src.__support.FPUtil.nearest_integer_operations
    libc.src.__support.macros.properties.cpu_features
    libc.src.__support.macros.properties.types
  FLAGS
    ROUND_OPT
)

add_entrypoint_object(
  floorf128
  SRCS
    floorf128.cpp
  HDRS
    ../floorf128.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  round
  SRCS
    round.cpp
  HDRS
    ../round.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
  FLAGS
    ROUND_OPT
)

add_entrypoint_object(
  roundf
  SRCS
    roundf.cpp
  HDRS
    ../roundf.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
  FLAGS
    ROUND_OPT
)

add_entrypoint_object(
  roundl
  SRCS
    roundl.cpp
  HDRS
    ../roundl.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  roundf16
  SRCS
    roundf16.cpp
  HDRS
    ../roundf16.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.cast
    libc.src.__support.FPUtil.nearest_integer_operations
    libc.src.__support.macros.properties.cpu_features
    libc.src.__support.macros.properties.types
  FLAGS
    ROUND_OPT
)

add_entrypoint_object(
  roundf128
  SRCS
    roundf128.cpp
  HDRS
    ../roundf128.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  roundeven
  SRCS
    roundeven.cpp
  HDRS
    ../roundeven.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
  FLAGS
    ROUND_OPT
)

add_entrypoint_object(
  roundevenf
  SRCS
    roundevenf.cpp
  HDRS
    ../roundevenf.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
  FLAGS
    ROUND_OPT
)

add_entrypoint_object(
  roundevenl
  SRCS
    roundevenl.cpp
  HDRS
    ../roundevenl.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  roundevenf16
  SRCS
    roundevenf16.cpp
  HDRS
    ../roundevenf16.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.nearest_integer_operations
    libc.src.__support.FPUtil.cast
    libc.src.__support.macros.properties.cpu_features
  FLAGS
    ROUND_OPT
)

add_entrypoint_object(
  roundevenf128
  SRCS
    roundevenf128.cpp
  HDRS
    ../roundevenf128.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  lround
  SRCS
    lround.cpp
  HDRS
    ../lround.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  lroundf
  SRCS
    lroundf.cpp
  HDRS
    ../lroundf.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  lroundl
  SRCS
    lroundl.cpp
  HDRS
    ../lroundl.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  lroundf16
  SRCS
    lroundf16.cpp
  HDRS
    ../lroundf16.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  lroundf128
  SRCS
    lroundf128.cpp
  HDRS
    ../lroundf128.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  llround
  SRCS
    llround.cpp
  HDRS
    ../llround.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  llroundf
  SRCS
    llroundf.cpp
  HDRS
    ../llroundf.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  llroundl
  SRCS
    llroundl.cpp
  HDRS
    ../llroundl.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  llroundf16
  SRCS
    llroundf16.cpp
  HDRS
    ../llroundf16.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  llroundf128
  SRCS
    llroundf128.cpp
  HDRS
    ../llroundf128.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  rint
  SRCS
    rint.cpp
  HDRS
    ../rint.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
  FLAGS
    ROUND_OPT
)

add_entrypoint_object(
  rintf
  SRCS
    rintf.cpp
  HDRS
    ../rintf.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
  FLAGS
    ROUND_OPT
)

add_entrypoint_object(
  rintl
  SRCS
    rintl.cpp
  HDRS
    ../rintl.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  rintf16
  SRCS
    rintf16.cpp
  HDRS
    ../rintf16.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.cast
    libc.src.__support.FPUtil.nearest_integer_operations
    libc.src.__support.macros.properties.cpu_features
    libc.src.__support.macros.properties.types
  FLAGS
    ROUND_OPT
)

add_entrypoint_object(
  rintf128
  SRCS
    rintf128.cpp
  HDRS
    ../rintf128.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  lrint
  SRCS
    lrint.cpp
  HDRS
    ../lrint.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  lrintf
  SRCS
    lrintf.cpp
  HDRS
    ../lrintf.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  lrintl
  SRCS
    lrintl.cpp
  HDRS
    ../lrintl.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  lrintf16
  SRCS
    lrintf16.cpp
  HDRS
    ../lrintf16.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  lrintf128
  SRCS
    lrintf128.cpp
  HDRS
    ../lrintf128.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  llrint
  SRCS
    llrint.cpp
  HDRS
    ../llrint.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  llrintf
  SRCS
    llrintf.cpp
  HDRS
    ../llrintf.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  llrintl
  SRCS
    llrintl.cpp
  HDRS
    ../llrintl.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  llrintf16
  SRCS
    llrintf16.cpp
  HDRS
    ../llrintf16.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  llrintf128
  SRCS
    llrintf128.cpp
  HDRS
    ../llrintf128.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.nearest_integer_operations
)

add_entrypoint_object(
  nearbyint
  SRCS
    nearbyint.cpp
  HDRS
    ../nearbyint.h
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  nearbyintf
  SRCS
    nearbyintf.cpp
  HDRS
    ../nearbyintf.h
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  nearbyintl
  SRCS
    nearbyintl.cpp
  HDRS
    ../nearbyintl.h
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  nearbyintf16
  SRCS
    nearbyintf16.cpp
  HDRS
    ../nearbyintf16.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.nearest_integer_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  nearbyintf128
  SRCS
    nearbyintf128.cpp
  HDRS
    ../nearbyintf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.nearest_integer_operations
  COMPILE_OPTIONS
    -O3
)

add_object_library(
  exp_utils
  HDRS
    exp_utils.h
  SRCS
    exp_utils.cpp
)

add_entrypoint_object(
  erff
  SRCS
    erff.cpp
  HDRS
    ../erff.h
  DEPENDS
    .common_constants
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  exp
  SRCS
    exp.cpp
  HDRS
    ../exp.h
  DEPENDS
    .common_constants
    .explogxf
    libc.src.__support.CPP.bit
    libc.src.__support.CPP.optional
    libc.src.__support.FPUtil.dyadic_float
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.nearest_integer
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.FPUtil.triple_double
    libc.src.__support.integer_literals
    libc.src.__support.macros.optimization
    libc.src.errno.errno
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  expf
  SRCS
    expf.cpp
  HDRS
    ../expf.h
  DEPENDS
    .common_constants
    libc.src.__support.FPUtil.basic_operations
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.nearest_integer
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.macros.optimization
    libc.src.errno.errno
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  expf16
  SRCS
    expf16.cpp
  HDRS
    ../expf16.h
  DEPENDS
    .expxf16
    libc.hdr.errno_macros
    libc.hdr.fenv_macros
    libc.src.__support.CPP.array
    libc.src.__support.FPUtil.cast
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.nearest_integer
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  exp2
  SRCS
    exp2.cpp
  HDRS
    ../exp2.h
  DEPENDS
    .common_constants
    .explogxf
    libc.src.__support.CPP.bit
    libc.src.__support.CPP.optional
    libc.src.__support.FPUtil.dyadic_float
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.nearest_integer
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.FPUtil.triple_double
    libc.src.__support.integer_literals
    libc.src.__support.macros.optimization
    libc.src.errno.errno
  COMPILE_OPTIONS
    -O3
)

add_header_library(
  exp2f_impl
  HDRS
    exp2f_impl.h
  DEPENDS
    .explogxf
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.nearest_integer
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.macros.optimization
    libc.src.__support.common
    libc.src.errno.errno
)

add_entrypoint_object(
  exp2f
  SRCS
    exp2f.cpp
  HDRS
    ../exp2f.h
  DEPENDS
    .exp2f_impl
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  exp2f16
  SRCS
    exp2f16.cpp
  HDRS
    ../exp2f16.h
  DEPENDS
    .expxf16
    libc.hdr.errno_macros
    libc.hdr.fenv_macros
    libc.src.__support.FPUtil.cast
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  exp2m1f
  SRCS
    exp2m1f.cpp
  HDRS
    ../exp2m1f.h
  DEPENDS
    .explogxf
    libc.src.errno.errno
    libc.src.__support.common
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.macros.optimization
    libc.src.__support.macros.properties.cpu_features
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  exp2m1f16
  SRCS
    exp2m1f16.cpp
  HDRS
    ../exp2m1f16.h
  DEPENDS
    .expxf16
    libc.hdr.errno_macros
    libc.hdr.fenv_macros
    libc.src.__support.common
    libc.src.__support.FPUtil.cast
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.macros.optimization
    libc.src.__support.macros.properties.cpu_features
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  exp10
  SRCS
    exp10.cpp
  HDRS
    ../exp10.h
  DEPENDS
    .common_constants
    .explogxf
    libc.src.__support.CPP.bit
    libc.src.__support.CPP.optional
    libc.src.__support.FPUtil.dyadic_float
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.nearest_integer
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.FPUtil.triple_double
    libc.src.__support.integer_literals
    libc.src.__support.macros.optimization
    libc.src.errno.errno
  COMPILE_OPTIONS
    -O3
)

add_header_library(
  exp10f_impl
  HDRS
    exp10f_impl.h
  DEPENDS
    .explogxf
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.nearest_integer
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.macros.optimization
    libc.src.__support.common
    libc.src.errno.errno
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  exp10f
  SRCS
    exp10f.cpp
  HDRS
    ../exp10f.h
  DEPENDS
    .exp10f_impl
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  exp10f16
  SRCS
    exp10f16.cpp
  HDRS
    ../exp10f16.h
  DEPENDS
    .expxf16
    libc.hdr.errno_macros
    libc.hdr.fenv_macros
    libc.src.__support.CPP.array
    libc.src.__support.FPUtil.cast
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.nearest_integer
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.macros.optimization
    libc.src.__support.macros.properties.cpu_features
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  exp10m1f
  SRCS
    exp10m1f.cpp
  HDRS
    ../exp10m1f.h
  DEPENDS
    .explogxf
    libc.src.errno.errno
    libc.src.__support.common
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  exp10m1f16
  SRCS
    exp10m1f16.cpp
  HDRS
    ../exp10m1f16.h
  DEPENDS
    .expxf16
    libc.hdr.errno_macros
    libc.hdr.fenv_macros
    libc.src.__support.FPUtil.cast
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.macros.optimization
    libc.src.__support.macros.properties.cpu_features
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  expm1
  SRCS
    expm1.cpp
  HDRS
    ../expm1.h
  DEPENDS
    .common_constants
    .explogxf
    libc.src.__support.CPP.bit
    libc.src.__support.CPP.optional
    libc.src.__support.FPUtil.dyadic_float
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.nearest_integer
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.FPUtil.triple_double
    libc.src.__support.integer_literals
    libc.src.__support.macros.optimization
    libc.src.errno.errno
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  expm1f
  SRCS
    expm1f.cpp
  HDRS
    ../expm1f.h
  DEPENDS
    .common_constants
    libc.src.__support.FPUtil.basic_operations
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.nearest_integer
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.macros.optimization
    libc.src.errno.errno
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  expm1f16
  SRCS
    expm1f16.cpp
  HDRS
    ../expm1f16.h
  DEPENDS
    .expxf16
    libc.hdr.errno_macros
    libc.hdr.fenv_macros
    libc.src.__support.FPUtil.cast
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  powf
  SRCS
    powf.cpp
  HDRS
    ../powf.h
  DEPENDS
    .common_constants
    .exp10f_impl
    .exp2f_impl
    .explogxf
    libc.src.__support.CPP.bit
    libc.src.__support.CPP.optional
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.nearest_integer
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.FPUtil.sqrt
    libc.src.__support.FPUtil.triple_double
    libc.src.__support.macros.optimization
    libc.src.errno.errno
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  pow
  SRCS
    pow.cpp
  HDRS
    ../pow.h
  DEPENDS
    .common_constants
    libc.hdr.errno_macros
    libc.hdr.fenv_macros
    libc.src.__support.CPP.bit
    libc.src.__support.FPUtil.double_double
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.nearest_integer
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.FPUtil.sqrt
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  copysign
  SRCS
    copysign.cpp
  HDRS
    ../copysign.h
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
  FLAGS
    MISC_MATH_BASIC_OPS_OPT
)

add_entrypoint_object(
  copysignf
  SRCS
    copysignf.cpp
  HDRS
    ../copysignf.h
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
  FLAGS
    MISC_MATH_BASIC_OPS_OPT
)

add_entrypoint_object(
  copysignl
  SRCS
    copysignl.cpp
  HDRS
    ../copysignl.h
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  copysignf16
  SRCS
    copysignf16.cpp
  HDRS
    ../copysignf16.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
  FLAGS
    MISC_MATH_BASIC_OPS_OPT
)

add_entrypoint_object(
  copysignf128
  SRCS
    copysignf128.cpp
  HDRS
    ../copysignf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  frexp
  SRCS
    frexp.cpp
  HDRS
    ../frexp.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
)

add_entrypoint_object(
  frexpf
  SRCS
    frexpf.cpp
  HDRS
    ../frexpf.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
)

add_entrypoint_object(
  frexpl
  SRCS
    frexpl.cpp
  HDRS
    ../frexpl.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
)

add_entrypoint_object(
  frexpf16
  SRCS
    frexpf16.cpp
  HDRS
    ../frexpf16.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.manipulation_functions
)

add_entrypoint_object(
  frexpf128
  SRCS
    frexpf128.cpp
  HDRS
    ../frexpf128.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.manipulation_functions
)

add_entrypoint_object(
  ilogb
  SRCS
    ilogb.cpp
  HDRS
    ../ilogb.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
)

add_entrypoint_object(
  ilogbf
  SRCS
    ilogbf.cpp
  HDRS
    ../ilogbf.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
)

add_entrypoint_object(
  ilogbl
  SRCS
    ilogbl.cpp
  HDRS
    ../ilogbl.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
)

add_entrypoint_object(
  ilogbf16
  SRCS
    ilogbf16.cpp
  HDRS
    ../ilogbf16.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.manipulation_functions
)

add_entrypoint_object(
  ilogbf128
  SRCS
    ilogbf128.cpp
  HDRS
    ../ilogbf128.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.manipulation_functions
)

add_entrypoint_object(
  llogb
  SRCS
    llogb.cpp
  HDRS
    ../llogb.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
)

add_entrypoint_object(
  llogbf
  SRCS
    llogbf.cpp
  HDRS
    ../llogbf.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
)

add_entrypoint_object(
  llogbl
  SRCS
    llogbl.cpp
  HDRS
    ../llogbl.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
)

add_entrypoint_object(
  llogbf16
  SRCS
    llogbf16.cpp
  HDRS
    ../llogbf16.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.manipulation_functions
)

add_entrypoint_object(
  llogbf128
  SRCS
    llogbf128.cpp
  HDRS
    ../llogbf128.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.manipulation_functions
)

add_entrypoint_object(
  ldexp
  SRCS
    ldexp.cpp
  HDRS
    ../ldexp.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
)

add_entrypoint_object(
  ldexpf
  SRCS
    ldexpf.cpp
  HDRS
    ../ldexpf.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
)

add_entrypoint_object(
  ldexpl
  SRCS
    ldexpl.cpp
  HDRS
    ../ldexpl.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
)

add_entrypoint_object(
  ldexpf16
  SRCS
    ldexpf16.cpp
  HDRS
    ../ldexpf16.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.manipulation_functions
)

add_entrypoint_object(
  ldexpf128
  SRCS
    ldexpf128.cpp
  HDRS
    ../ldexpf128.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.manipulation_functions
)

add_object_library(
  common_constants
  HDRS
    common_constants.h
  SRCS
    common_constants.cpp
  DEPENDS
    libc.src.__support.number_pair
    libc.src.__support.FPUtil.triple_double
)

add_header_library(
  log_range_reduction
  HDRS
    log_range_reduction.h
  DEPENDS
    .common_constants
    libc.src.__support.uint128
    libc.src.__support.FPUtil.dyadic_float
)

add_entrypoint_object(
  log10
  SRCS
    log10.cpp
  HDRS
    ../log10.h
  DEPENDS
    .common_constants
    .log_range_reduction
    libc.src.__support.FPUtil.double_double
    libc.src.__support.FPUtil.dyadic_float
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.integer_literals
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  log10f
  SRCS
    log10f.cpp
  HDRS
    ../log10f.h
  DEPENDS
    .common_constants
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.fma
    libc.src.__support.FPUtil.polyeval
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  log10f16
  SRCS
    log10f16.cpp
  HDRS
    ../log10f16.h
  DEPENDS
    .expxf16
    libc.hdr.errno_macros
    libc.hdr.fenv_macros
    libc.src.__support.FPUtil.cast
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.macros.optimization
    libc.src.__support.macros.properties.cpu_features
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  log1p
  SRCS
    log1p.cpp
  HDRS
    ../log1p.h
  DEPENDS
    .common_constants
    libc.src.__support.FPUtil.double_double
    libc.src.__support.FPUtil.dyadic_float
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.integer_literals
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  log1pf
  SRCS
    log1pf.cpp
  HDRS
    ../log1pf.h
  DEPENDS
    .common_constants
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.fma
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  log2
  SRCS
    log2.cpp
  HDRS
    ../log2.h
  DEPENDS
    .common_constants
    .log_range_reduction
    libc.src.__support.FPUtil.double_double
    libc.src.__support.FPUtil.dyadic_float
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.integer_literals
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  log2f
  SRCS
    log2f.cpp
  HDRS
    ../log2f.h
  DEPENDS
    .common_constants
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.fma
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.macros.optimization
    COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  log2f16
  SRCS
    log2f16.cpp
  HDRS
    ../log2f16.h
  DEPENDS
    .expxf16
    libc.hdr.errno_macros
    libc.hdr.fenv_macros
    libc.src.__support.FPUtil.cast
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.macros.optimization
    libc.src.__support.macros.properties.cpu_features
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  log
  SRCS
    log.cpp
  HDRS
    ../log.h
  DEPENDS
    .common_constants
    .log_range_reduction
    libc.src.__support.FPUtil.double_double
    libc.src.__support.FPUtil.dyadic_float
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.integer_literals
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  logf
  SRCS
    logf.cpp
  HDRS
    ../logf.h
  DEPENDS
    .common_constants
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  logf16
  SRCS
    logf16.cpp
  HDRS
    ../logf16.h
  DEPENDS
    .expxf16
    libc.hdr.errno_macros
    libc.hdr.fenv_macros
    libc.src.__support.FPUtil.cast
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.macros.optimization
    libc.src.__support.macros.properties.cpu_features
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  logb
  SRCS
    logb.cpp
  HDRS
    ../logb.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
)

add_entrypoint_object(
  logbf
  SRCS
    logbf.cpp
  HDRS
    ../logbf.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
)

add_entrypoint_object(
  logbl
  SRCS
    logbl.cpp
  HDRS
    ../logbl.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
)

add_entrypoint_object(
  logbf16
  SRCS
    logbf16.cpp
  HDRS
    ../logbf16.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.manipulation_functions
)

add_entrypoint_object(
  logbf128
  SRCS
    logbf128.cpp
  HDRS
    ../logbf128.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.manipulation_functions
)

add_entrypoint_object(
  modf
  SRCS
    modf.cpp
  HDRS
    ../modf.h
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  modff
  SRCS
    modff.cpp
  HDRS
    ../modff.h
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  modfl
  SRCS
    modfl.cpp
  HDRS
    ../modfl.h
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  modff16
  SRCS
    modff16.cpp
  HDRS
    ../modff16.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  modff128
  SRCS
    modff128.cpp
  HDRS
    ../modff128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fmin
  SRCS
    fmin.cpp
  HDRS
    ../fmin.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
  FLAGS
    MISC_MATH_BASIC_OPS_OPT
)

add_entrypoint_object(
  fminf
  SRCS
    fminf.cpp
  HDRS
    ../fminf.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
  FLAGS
    MISC_MATH_BASIC_OPS_OPT
)

add_entrypoint_object(
  fminl
  SRCS
    fminl.cpp
  HDRS
    ../fminl.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fminf128
  SRCS
    fminf128.cpp
  HDRS
    ../fminf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fminf16
  SRCS
    fminf16.cpp
  HDRS
    ../fminf16.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
  FLAGS
    MISC_MATH_BASIC_OPS_OPT
)


add_entrypoint_object(
  fmax
  SRCS
    fmax.cpp
  HDRS
    ../fmax.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
  FLAGS
    MISC_MATH_BASIC_OPS_OPT
)

add_entrypoint_object(
  fmaxf
  SRCS
    fmaxf.cpp
  HDRS
    ../fmaxf.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
  FLAGS
    MISC_MATH_BASIC_OPS_OPT
)

add_entrypoint_object(
  fmaxl
  SRCS
    fmaxl.cpp
  HDRS
    ../fmaxl.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fmaxf128
  SRCS
    fmaxf128.cpp
  HDRS
    ../fmaxf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fmaxf16
  SRCS
    fmaxf16.cpp
  HDRS
    ../fmaxf16.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
  FLAGS
    MISC_MATH_BASIC_OPS_OPT
)

add_entrypoint_object(
  fmaximum
  SRCS
    fmaximum.cpp
  HDRS
    ../fmaximum.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
  FLAGS
    MISC_MATH_BASIC_OPS_OPT
)

add_entrypoint_object(
  fmaximumf
  SRCS
    fmaximumf.cpp
  HDRS
    ../fmaximumf.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
  FLAGS
    MISC_MATH_BASIC_OPS_OPT
)

add_entrypoint_object(
  fmaximuml
  SRCS
    fmaximuml.cpp
  HDRS
    ../fmaximuml.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fmaximumf16
  SRCS
    fmaximumf16.cpp
  HDRS
    ../fmaximumf16.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
  FLAGS
    MISC_MATH_BASIC_OPS_OPT
)

add_entrypoint_object(
  fmaximumf128
  SRCS
    fmaximumf128.cpp
  HDRS
    ../fmaximumf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fmaximum_num
  SRCS
    fmaximum_num.cpp
  HDRS
    ../fmaximum_num.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
  FLAGS
    MISC_MATH_BASIC_OPS_OPT
)

add_entrypoint_object(
  fmaximum_numf
  SRCS
    fmaximum_numf.cpp
  HDRS
    ../fmaximum_numf.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
  FLAGS
    MISC_MATH_BASIC_OPS_OPT
)

add_entrypoint_object(
  fmaximum_numl
  SRCS
    fmaximum_numl.cpp
  HDRS
    ../fmaximum_numl.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fmaximum_numf16
  SRCS
    fmaximum_numf16.cpp
  HDRS
    ../fmaximum_numf16.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
  FLAGS
    MISC_MATH_BASIC_OPS_OPT
)

add_entrypoint_object(
  fmaximum_numf128
  SRCS
    fmaximum_numf128.cpp
  HDRS
    ../fmaximum_numf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fmaximum_mag
  SRCS
    fmaximum_mag.cpp
  HDRS
    ../fmaximum_mag.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O2
)

add_entrypoint_object(
  fmaximum_magf
  SRCS
    fmaximum_magf.cpp
  HDRS
    ../fmaximum_magf.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O2
)

add_entrypoint_object(
  fmaximum_magl
  SRCS
    fmaximum_magl.cpp
  HDRS
    ../fmaximum_magl.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O2
)

add_entrypoint_object(
  fmaximum_magf16
  SRCS
    fmaximum_magf16.cpp
  HDRS
    ../fmaximum_magf16.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fmaximum_magf128
  SRCS
    fmaximum_magf128.cpp
  HDRS
    ../fmaximum_magf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fmaximum_mag_num
  SRCS
    fmaximum_mag_num.cpp
  HDRS
    ../fmaximum_mag_num.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O2
)

add_entrypoint_object(
  fmaximum_mag_numf
  SRCS
    fmaximum_mag_numf.cpp
  HDRS
    ../fmaximum_mag_numf.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O2
)

add_entrypoint_object(
  fmaximum_mag_numl
  SRCS
    fmaximum_mag_numl.cpp
  HDRS
    ../fmaximum_mag_numl.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O2
)

add_entrypoint_object(
  fmaximum_mag_numf16
  SRCS
    fmaximum_mag_numf16.cpp
  HDRS
    ../fmaximum_mag_numf16.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fmaximum_mag_numf128
  SRCS
    fmaximum_mag_numf128.cpp
  HDRS
    ../fmaximum_mag_numf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fminimum
  SRCS
    fminimum.cpp
  HDRS
    ../fminimum.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
  FLAGS
    MISC_MATH_BASIC_OPS_OPT
)

add_entrypoint_object(
  fminimumf
  SRCS
    fminimumf.cpp
  HDRS
    ../fminimumf.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
  FLAGS
    MISC_MATH_BASIC_OPS_OPT
)

add_entrypoint_object(
  fminimuml
  SRCS
    fminimuml.cpp
  HDRS
    ../fminimuml.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fminimumf16
  SRCS
    fminimumf16.cpp
  HDRS
    ../fminimumf16.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
  FLAGS
    MISC_MATH_BASIC_OPS_OPT
)

add_entrypoint_object(
  fminimumf128
  SRCS
    fminimumf128.cpp
  HDRS
    ../fminimumf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fminimum_num
  SRCS
    fminimum_num.cpp
  HDRS
    ../fminimum_num.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
  FLAGS
    MISC_MATH_BASIC_OPS_OPT
)

add_entrypoint_object(
  fminimum_numf
  SRCS
    fminimum_numf.cpp
  HDRS
    ../fminimum_numf.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
  FLAGS
    MISC_MATH_BASIC_OPS_OPT
)

add_entrypoint_object(
  fminimum_numl
  SRCS
    fminimum_numl.cpp
  HDRS
    ../fminimum_numl.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fminimum_numf16
  SRCS
    fminimum_numf16.cpp
  HDRS
    ../fminimum_numf16.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
  FLAGS
    MISC_MATH_BASIC_OPS_OPT
)

add_entrypoint_object(
  fminimum_numf128
  SRCS
    fminimum_numf128.cpp
  HDRS
    ../fminimum_numf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fminimum_mag
  SRCS
    fminimum_mag.cpp
  HDRS
    ../fminimum_mag.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O2
)

add_entrypoint_object(
  fminimum_magf
  SRCS
    fminimum_magf.cpp
  HDRS
    ../fminimum_magf.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O2
)

add_entrypoint_object(
  fminimum_magl
  SRCS
    fminimum_magl.cpp
  HDRS
    ../fminimum_magl.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O2
)

add_entrypoint_object(
  fminimum_magf16
  SRCS
    fminimum_magf16.cpp
  HDRS
    ../fminimum_magf16.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fminimum_magf128
  SRCS
    fminimum_magf128.cpp
  HDRS
    ../fminimum_magf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fminimum_mag_num
  SRCS
    fminimum_mag_num.cpp
  HDRS
    ../fminimum_mag_num.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O2
)

add_entrypoint_object(
  fminimum_mag_numf
  SRCS
    fminimum_mag_numf.cpp
  HDRS
    ../fminimum_mag_numf.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O2
)

add_entrypoint_object(
  fminimum_mag_numl
  SRCS
    fminimum_mag_numl.cpp
  HDRS
    ../fminimum_mag_numl.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O2
)

add_entrypoint_object(
  fminimum_mag_numf16
  SRCS
    fminimum_mag_numf16.cpp
  HDRS
    ../fminimum_mag_numf16.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fminimum_mag_numf128
  SRCS
    fminimum_mag_numf128.cpp
  HDRS
    ../fminimum_mag_numf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fmul
  SRCS
    fmul.cpp
  HDRS
    ../fmul.h
  DEPENDS
    libc.hdr.errno_macros
    libc.hdr.fenv_macros
    libc.src.__support.FPUtil.double_double
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fmull
  SRCS
    fmull.cpp
  HDRS
    ../fmull.h
  DEPENDS
    libc.src.__support.FPUtil.generic.mul
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fmulf128
  SRCS
    fmulf128.cpp
  HDRS
    ../fmulf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.generic.mul
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fsub
  SRCS
    fsub.cpp
  HDRS
    ../fsub.h
  DEPENDS
    libc.src.__support.FPUtil.generic.add_sub
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fsubl
  SRCS
    fsubl.cpp
  HDRS
    ../fsubl.h
  DEPENDS
    libc.src.__support.FPUtil.generic.add_sub
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fsubf128
  SRCS
    fsubf128.cpp
  HDRS
    ../fsubf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.generic.add_sub
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  sqrt
  SRCS
    sqrt.cpp
  HDRS
    ../sqrt.h
  DEPENDS
    libc.src.__support.FPUtil.sqrt
  COMPILE_OPTIONS
    -O3
)


add_entrypoint_object(
  sqrtf
  SRCS
    sqrtf.cpp
  HDRS
    ../sqrtf.h
  DEPENDS
    libc.src.__support.FPUtil.sqrt
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  sqrtl
  SRCS
    sqrtl.cpp
  HDRS
    ../sqrtl.h
  DEPENDS
    libc.src.__support.FPUtil.sqrt
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  sqrtf16
  SRCS
    sqrtf16.cpp
  HDRS
    ../sqrtf16.h
  DEPENDS
    libc.src.__support.FPUtil.sqrt
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  sqrtf128
  SRCS
    sqrtf128.cpp
  HDRS
    ../sqrtf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.sqrt
  COMPILE_OPTIONS
    -O3
  )

add_entrypoint_object(
  remquof
  SRCS
    remquof.cpp
  HDRS
    ../remquof.h
  DEPENDS
    libc.src.__support.FPUtil.division_and_remainder_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  remquof128
  SRCS
    remquof128.cpp
  HDRS
    ../remquof128.h
  DEPENDS
    libc.src.__support.FPUtil.division_and_remainder_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  remquo
  SRCS
    remquo.cpp
  HDRS
    ../remquo.h
  DEPENDS
    libc.src.__support.FPUtil.division_and_remainder_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  remquol
  SRCS
    remquol.cpp
  HDRS
    ../remquol.h
  DEPENDS
    libc.src.__support.FPUtil.division_and_remainder_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  remquof16
  SRCS
    remquof16.cpp
  HDRS
    ../remquof16.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.division_and_remainder_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  remainderf
  SRCS
    remainderf.cpp
  HDRS
    ../remainderf.h
  DEPENDS
    libc.src.__support.FPUtil.division_and_remainder_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  remainder
  SRCS
    remainder.cpp
  HDRS
    ../remainder.h
  DEPENDS
    libc.src.__support.FPUtil.division_and_remainder_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  remainderl
  SRCS
    remainderl.cpp
  HDRS
    ../remainderl.h
  DEPENDS
    libc.src.__support.FPUtil.division_and_remainder_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  remainderf16
  SRCS
    remainderf16.cpp
  HDRS
    ../remainderf16.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.division_and_remainder_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  remainderf128
  SRCS
    remainderf128.cpp
  HDRS
    ../remainderf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.division_and_remainder_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  hypotf
  SRCS
    hypotf.cpp
  HDRS
    ../hypotf.h
  DEPENDS
    libc.src.__support.FPUtil.double_double
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.sqrt
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fdim
  SRCS
    fdim.cpp
  HDRS
    ../fdim.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
)

add_entrypoint_object(
  fdimf
  SRCS
    fdimf.cpp
  HDRS
    ../fdimf.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
)

add_entrypoint_object(
  fdiml
  SRCS
    fdiml.cpp
  HDRS
    ../fdiml.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
)

add_entrypoint_object(
  fdimf16
  SRCS
    fdimf16.cpp
  HDRS
    ../fdimf16.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
)

add_entrypoint_object(
  fdimf128
  SRCS
    fdimf128.cpp
  HDRS
    ../fdimf128.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
)

add_entrypoint_object(
  fdiv
  SRCS
    fdiv.cpp
  HDRS
    ../fdiv.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.generic.div
)

add_entrypoint_object(
  fdivl
  SRCS
    fdivl.cpp
  HDRS
    ../fdivl.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.generic.div
)

add_entrypoint_object(
  fdivf128
  SRCS
    fdivf128.cpp
  HDRS
    ../fdivf128.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.generic.div
)

add_entrypoint_object(
  ffma
  SRCS
    ffma.cpp
  HDRS
    ../ffma.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.fma
)

add_entrypoint_object(
  ffmal
  SRCS
    ffmal.cpp
  HDRS
    ../ffmal.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.FPUtil.fma
)

add_entrypoint_object(
  ffmaf128
  SRCS
    ffmaf128.cpp
  HDRS
    ../ffmaf128.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.fma
)

add_entrypoint_object(
  hypot
  SRCS
    hypot.cpp
  HDRS
    ../hypot.h
  DEPENDS
    libc.src.__support.FPUtil.hypot
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  issignaling
  SRCS
    issignaling.cpp
  HDRS
    ../issignaling.h
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  issignalingf
  SRCS
    issignalingf.cpp
  HDRS
    ../issignalingf.h
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  issignalingl
  SRCS
    issignalingl.cpp
  HDRS
    ../issignalingl.h
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  issignalingf16
  SRCS
    issignalingf16.cpp
  HDRS
    ../issignalingf16.h
  COMPILE_OPTIONS
      -O3
  DEPENDS
    libc.src.__support.macros.properties.types
)

add_entrypoint_object(
  issignalingf128
  SRCS
    issignalingf128.cpp
  HDRS
    ../issignalingf128.h
  COMPILE_OPTIONS
      -O3
  DEPENDS
    libc.src.__support.macros.properties.types
)

add_entrypoint_object(
  isnan
  SRCS
    isnan.cpp
  HDRS
    ../isnan.h
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  isnanf
  SRCS
    isnanf.cpp
  HDRS
    ../isnanf.h
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  isnanl
  SRCS
    isnanl.cpp
  HDRS
    ../isnanl.h
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  nan
  SRCS
    nan.cpp
  HDRS
    ../nan.h
  DEPENDS
    libc.src.__support.str_to_float
    libc.src.errno.errno
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  nanf
  SRCS
    nanf.cpp
  HDRS
    ../nanf.h
  DEPENDS
    libc.src.__support.str_to_float
    libc.src.errno.errno
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  nanl
  SRCS
    nanl.cpp
  HDRS
    ../nanl.h
  DEPENDS
    libc.src.__support.str_to_float
    libc.src.errno.errno
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  nanf16
  SRCS
    nanf16.cpp
  HDRS
    ../nanf16.h
  DEPENDS
    libc.src.__support.str_to_float
    libc.src.errno.errno
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  nanf128
  SRCS
    nanf128.cpp
  HDRS
    ../nanf128.h
  DEPENDS
    libc.src.__support.str_to_float
    libc.src.errno.errno
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  nextafter
  SRCS
    nextafter.cpp
  HDRS
    ../nextafter.h
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  nextafterf
  SRCS
    nextafterf.cpp
  HDRS
    ../nextafterf.h
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  nextafterl
  SRCS
    nextafterl.cpp
  HDRS
    ../nextafterl.h
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  nextafterf16
  SRCS
    nextafterf16.cpp
  HDRS
    ../nextafterf16.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  nextafterf128
  SRCS
    nextafterf128.cpp
  HDRS
    ../nextafterf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  nexttoward
  SRCS
    nexttoward.cpp
  HDRS
    ../nexttoward.h
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  nexttowardf
  SRCS
    nexttowardf.cpp
  HDRS
    ../nexttowardf.h
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  nexttowardl
  SRCS
    nexttowardl.cpp
  HDRS
    ../nexttowardl.h
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  nexttowardf16
  SRCS
    nexttowardf16.cpp
  HDRS
    ../nexttowardf16.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  nextdown
  SRCS
    nextdown.cpp
  HDRS
    ../nextdown.h
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  nextdownl
  SRCS
    nextdownl.cpp
  HDRS
    ../nextdownl.h
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  nextdownf
  SRCS
    nextdownf.cpp
  HDRS
    ../nextdownf.h
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  nextdownf16
  SRCS
    nextdownf16.cpp
  HDRS
    ../nextdownf16.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  nextdownf128
  SRCS
    nextdownf128.cpp
  HDRS
    ../nextdownf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  nextup
  SRCS
    nextup.cpp
  HDRS
    ../nextup.h
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  nextupl
  SRCS
    nextupl.cpp
  HDRS
    ../nextupl.h
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  nextupf
  SRCS
    nextupf.cpp
  HDRS
    ../nextupf.h
  DEPENDS
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  nextupf16
  SRCS
    nextupf16.cpp
  HDRS
    ../nextupf16.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  nextupf128
  SRCS
    nextupf128.cpp
  HDRS
    ../nextupf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fmod
  SRCS
    fmod.cpp
  HDRS
    ../fmod.h
  DEPENDS
    libc.src.__support.FPUtil.generic.fmod
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fmodf
  SRCS
    fmodf.cpp
  HDRS
    ../fmodf.h
  DEPENDS
    libc.src.__support.FPUtil.generic.fmod
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fmodl
  SRCS
    fmodl.cpp
  HDRS
    ../fmodl.h
  DEPENDS
    libc.src.__support.FPUtil.generic.fmod
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fmodf16
  SRCS
    fmodf16.cpp
  HDRS
    ../fmodf16.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.generic.fmod
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fmodf128
  SRCS
    fmodf128.cpp
  HDRS
    ../fmodf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.generic.fmod
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fromfp
  SRCS
    fromfp.cpp
  HDRS
    ../fromfp.h
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fromfpf
  SRCS
    fromfpf.cpp
  HDRS
    ../fromfpf.h
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fromfpl
  SRCS
    fromfpl.cpp
  HDRS
    ../fromfpl.h
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fromfpf16
  SRCS
    fromfpf16.cpp
  HDRS
    ../fromfpf16.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.nearest_integer_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fromfpf128
  SRCS
    fromfpf128.cpp
  HDRS
    ../fromfpf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.nearest_integer_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fromfpx
  SRCS
    fromfpx.cpp
  HDRS
    ../fromfpx.h
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fromfpxf
  SRCS
    fromfpxf.cpp
  HDRS
    ../fromfpxf.h
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fromfpxl
  SRCS
    fromfpxl.cpp
  HDRS
    ../fromfpxl.h
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fromfpxf16
  SRCS
    fromfpxf16.cpp
  HDRS
    ../fromfpxf16.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.nearest_integer_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fromfpxf128
  SRCS
    fromfpxf128.cpp
  HDRS
    ../fromfpxf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.nearest_integer_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  ufromfp
  SRCS
    ufromfp.cpp
  HDRS
    ../ufromfp.h
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  ufromfpf
  SRCS
    ufromfpf.cpp
  HDRS
    ../ufromfpf.h
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  ufromfpl
  SRCS
    ufromfpl.cpp
  HDRS
    ../ufromfpl.h
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  ufromfpf16
  SRCS
    ufromfpf16.cpp
  HDRS
    ../ufromfpf16.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.nearest_integer_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  ufromfpf128
  SRCS
    ufromfpf128.cpp
  HDRS
    ../ufromfpf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.nearest_integer_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  ufromfpx
  SRCS
    ufromfpx.cpp
  HDRS
    ../ufromfpx.h
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  ufromfpxf
  SRCS
    ufromfpxf.cpp
  HDRS
    ../ufromfpxf.h
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  ufromfpxl
  SRCS
    ufromfpxl.cpp
  HDRS
    ../ufromfpxl.h
  DEPENDS
    libc.src.__support.FPUtil.nearest_integer_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  ufromfpxf16
  SRCS
    ufromfpxf16.cpp
  HDRS
    ../ufromfpxf16.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.nearest_integer_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  ufromfpxf128
  SRCS
    ufromfpxf128.cpp
  HDRS
    ../ufromfpxf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.nearest_integer_operations
  COMPILE_OPTIONS
    -O3
)

#TODO: Add errno include to the hyperbolic functions.
add_object_library(
  explogxf
  HDRS
    explogxf.h
  SRCS
    explogxf.cpp
  DEPENDS
    .common_constants
    libc.src.__support.CPP.bit
    libc.src.__support.CPP.optional
    libc.src.__support.FPUtil.basic_operations
    libc.src.__support.FPUtil.basic_operations
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.nearest_integer
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.common
    libc.src.errno.errno
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  coshf
  SRCS
    coshf.cpp
  HDRS
    ../coshf.h
  DEPENDS
    .explogxf
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  coshf16
  SRCS
    coshf16.cpp
  HDRS
    ../coshf16.h
  DEPENDS
    .expxf16
    libc.hdr.errno_macros
    libc.hdr.fenv_macros
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  sinhf
  SRCS
    sinhf.cpp
  HDRS
    ../sinhf.h
  DEPENDS
    .explogxf
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  sinhf16
  SRCS
    sinhf16.cpp
  HDRS
    ../sinhf16.h
  DEPENDS
    .expxf16
    libc.hdr.errno_macros
    libc.hdr.fenv_macros
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  tanhf
  SRCS
    tanhf.cpp
  HDRS
    ../tanhf.h
  DEPENDS
    .explogxf
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  tanhf16
  SRCS
    tanhf16.cpp
  HDRS
    ../tanhf16.h
  DEPENDS
    .expxf16
    libc.hdr.fenv_macros
    libc.src.__support.CPP.array
    libc.src.__support.FPUtil.cast
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.nearest_integer
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  acoshf
  SRCS
    acoshf.cpp
  HDRS
    ../acoshf.h
  DEPENDS
    .explogxf
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.FPUtil.sqrt
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  asinhf
  SRCS
    asinhf.cpp
  HDRS
    ../asinhf.h
  DEPENDS
    .explogxf
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.FPUtil.sqrt
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  atanhf
  SRCS
    atanhf.cpp
  HDRS
    ../atanhf.h
  DEPENDS
    .explogxf
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_object_library(
  inv_trigf_utils
  HDRS
    inv_trigf_utils.h
  SRCS
    inv_trigf_utils.cpp
  DEPENDS
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.common
)

add_entrypoint_object(
  asinf
  SRCS
    asinf.cpp
  HDRS
    ../asinf.h
  DEPENDS
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.FPUtil.sqrt
    libc.src.__support.macros.optimization
    .inv_trigf_utils
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  acosf
  SRCS
    acosf.cpp
  HDRS
    ../acosf.h
  DEPENDS
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.FPUtil.sqrt
    libc.src.__support.macros.optimization
    .inv_trigf_utils
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  atanf
  SRCS
    atanf.cpp
  HDRS
    ../atanf.h
  DEPENDS
    .inv_trigf_utils
    libc.src.__support.FPUtil.except_value_utils
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.nearest_integer
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.macros.optimization
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  atan2f
  SRCS
    atan2f.cpp
  HDRS
    ../atan2f.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    .inv_trigf_utils
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.nearest_integer
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.macros.optimization
)

add_entrypoint_object(
  atan2
  SRCS
    atan2.cpp
  HDRS
    ../atan2.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    .inv_trigf_utils
    libc.src.__support.FPUtil.double_double
    libc.src.__support.FPUtil.dyadic_float
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.nearest_integer
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.FPUtil.rounding_mode
    libc.src.__support.macros.optimization
)

add_entrypoint_object(
  atan2l
  SRCS
    atan2l.cpp
  HDRS
    ../atan2l.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    .atan2
)

add_entrypoint_object(
  scalbln
  SRCS
    scalbln.cpp
  HDRS
    ../scalbln.h
  DEPENDS
    libc.hdr.float_macros
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  scalblnf
  SRCS
    scalblnf.cpp
  HDRS
    ../scalblnf.h
  DEPENDS
    libc.hdr.float_macros
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  scalblnl
  SRCS
    scalblnl.cpp
  HDRS
    ../scalblnl.h
  DEPENDS
    libc.hdr.float_macros
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  scalblnf16
  SRCS
    scalblnf16.cpp
  HDRS
    ../scalblnf16.h
  DEPENDS
    libc.hdr.float_macros
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  scalblnf128
  SRCS
    scalblnf128.cpp
  HDRS
    ../scalblnf128.h
  DEPENDS
    libc.hdr.float_macros
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  scalbn
  SRCS
    scalbn.cpp
  HDRS
    ../scalbn.h
  DEPENDS
    libc.hdr.float_macros
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  scalbnf
  SRCS
    scalbnf.cpp
  HDRS
    ../scalbnf.h
  DEPENDS
    libc.hdr.float_macros
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  scalbnl
  SRCS
    scalbnl.cpp
  HDRS
    ../scalbnl.h
  DEPENDS
    libc.hdr.float_macros
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  scalbnf16
  SRCS
    scalbnf16.cpp
  HDRS
    ../scalbnf16.h
  DEPENDS
    libc.hdr.float_macros
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  scalbnf128
  SRCS
    scalbnf128.cpp
  HDRS
    ../scalbnf128.h
  DEPENDS
    libc.hdr.float_macros
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.manipulation_functions
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fmaf
  SRCS
    fmaf.cpp
  HDRS
    ../fmaf.h
  DEPENDS
    libc.src.__support.FPUtil.fma
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fma
  SRCS
    fma.cpp
  HDRS
    ../fma.h
  DEPENDS
    libc.src.__support.FPUtil.fma
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  totalorder
  SRCS
    totalorder.cpp
  HDRS
    ../totalorder.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  totalorderf
  SRCS
    totalorderf.cpp
  HDRS
    ../totalorderf.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  totalorderl
  SRCS
    totalorderl.cpp
  HDRS
    ../totalorderl.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  totalorderf16
  SRCS
    totalorderf16.cpp
  HDRS
    ../totalorderf16.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  totalorderf128
  SRCS
    totalorderf128.cpp
  HDRS
    ../totalorderf128.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
    libc.src.__support.macros.properties.types
  COMPILE_OPTIONS
    -O3
)
add_entrypoint_object(
  totalordermag
  SRCS
    totalordermag.cpp
  HDRS
    ../totalordermag.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  totalordermagf
  SRCS
    totalordermagf.cpp
  HDRS
    ../totalordermagf.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  totalordermagl
  SRCS
    totalordermagl.cpp
  HDRS
    ../totalordermagl.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  totalordermagf16
  SRCS
    totalordermagf16.cpp
  HDRS
    ../totalordermagf16.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  totalordermagf128
  SRCS
    totalordermagf128.cpp
  HDRS
    ../totalordermagf128.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
    libc.src.__support.macros.properties.types
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  getpayload
  SRCS
    getpayload.cpp
  HDRS
    ../getpayload.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  getpayloadf
  SRCS
    getpayloadf.cpp
  HDRS
    ../getpayloadf.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  getpayloadl
  SRCS
    getpayloadl.cpp
  HDRS
    ../getpayloadl.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  getpayloadf16
  SRCS
    getpayloadf16.cpp
  HDRS
    ../getpayloadf16.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  getpayloadf128
  SRCS
    getpayloadf128.cpp
  HDRS
    ../getpayloadf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  setpayload
  SRCS
    setpayload.cpp
  HDRS
    ../setpayload.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  setpayloadf
  SRCS
    setpayloadf.cpp
  HDRS
    ../setpayloadf.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  setpayloadl
  SRCS
    setpayloadl.cpp
  HDRS
    ../setpayloadl.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  setpayloadf16
  SRCS
    setpayloadf16.cpp
  HDRS
    ../setpayloadf16.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  setpayloadf128
  SRCS
    setpayloadf128.cpp
  HDRS
    ../setpayloadf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  setpayloadsig
  SRCS
    setpayloadsig.cpp
  HDRS
    ../setpayloadsig.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  setpayloadsigf
  SRCS
    setpayloadsigf.cpp
  HDRS
    ../setpayloadsigf.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  setpayloadsigl
  SRCS
    setpayloadsigl.cpp
  HDRS
    ../setpayloadsigl.h
  DEPENDS
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  setpayloadsigf16
  SRCS
    setpayloadsigf16.cpp
  HDRS
    ../setpayloadsigf16.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  setpayloadsigf128
  SRCS
    setpayloadsigf128.cpp
  HDRS
    ../setpayloadsigf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.basic_operations
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  f16add
  SRCS
    f16add.cpp
  HDRS
    ../f16add.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.generic.add_sub
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  f16addf
  SRCS
    f16addf.cpp
  HDRS
    ../f16addf.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.generic.add_sub
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  f16addl
  SRCS
    f16addl.cpp
  HDRS
    ../f16addl.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.generic.add_sub
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  f16addf128
  SRCS
    f16addf128.cpp
  HDRS
    ../f16addf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.generic.add_sub
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  f16sub
  SRCS
    f16sub.cpp
  HDRS
    ../f16sub.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.generic.add_sub
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  f16subf
  SRCS
    f16subf.cpp
  HDRS
    ../f16subf.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.generic.add_sub
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  f16subl
  SRCS
    f16subl.cpp
  HDRS
    ../f16subl.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.generic.add_sub
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  f16subf128
  SRCS
    f16subf128.cpp
  HDRS
    ../f16subf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.generic.add_sub
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  f16div
  SRCS
    f16div.cpp
  HDRS
    ../f16div.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.generic.div
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  f16divf
  SRCS
    f16divf.cpp
  HDRS
    ../f16divf.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.generic.div
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  f16divl
  SRCS
    f16divl.cpp
  HDRS
    ../f16divl.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.generic.div
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  f16divf128
  SRCS
    f16divf128.cpp
  HDRS
    ../f16divf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.generic.div
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  f16fma
  SRCS
    f16fma.cpp
  HDRS
    ../f16fma.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.fma
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  f16fmaf
  SRCS
    f16fmaf.cpp
  HDRS
    ../f16fmaf.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.fma
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  f16fmal
  SRCS
    f16fmal.cpp
  HDRS
    ../f16fmal.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.fma
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  f16fmaf128
  SRCS
    f16fmaf128.cpp
  HDRS
    ../f16fmaf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.fma
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  f16sqrt
  SRCS
    f16sqrt.cpp
  HDRS
    ../f16sqrt.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.sqrt
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  f16sqrtf
  SRCS
    f16sqrtf.cpp
  HDRS
    ../f16sqrtf.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.sqrt
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  f16sqrtl
  SRCS
    f16sqrtl.cpp
  HDRS
    ../f16sqrtl.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.sqrt
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  f16sqrtf128
  SRCS
    f16sqrtf128.cpp
  HDRS
    ../f16sqrtf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.sqrt
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fsqrt
  SRCS
    fsqrt.cpp
  HDRS
    ../fsqrt.h
  DEPENDS
    libc.src.__support.FPUtil.generic.sqrt
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fsqrtl
  SRCS
    fsqrtl.cpp
  HDRS
    ../fsqrtl.h
  DEPENDS
    libc.src.__support.FPUtil.generic.sqrt
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  fsqrtf128
  SRCS
    fsqrtf128.cpp
  HDRS
    ../fsqrtf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.generic.sqrt
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  cbrtf
  SRCS
    cbrtf.cpp
  HDRS
    ../cbrtf.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.hdr.fenv_macros
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.macros.optimization
)

add_entrypoint_object(
  cbrt
  SRCS
    cbrt.cpp
  HDRS
    ../cbrt.h
  COMPILE_OPTIONS
    -O3
  DEPENDS
    libc.hdr.fenv_macros
    libc.src.__support.FPUtil.double_double
    libc.src.__support.FPUtil.dyadic_float
    libc.src.__support.FPUtil.fenv_impl
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.macros.optimization
    libc.src.__support.integer_literals
)

add_entrypoint_object(
  dmull
  SRCS
    dmull.cpp
  HDRS
    ../dmull.h
  DEPENDS
    libc.src.__support.FPUtil.generic.mul
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  dmulf128
  SRCS
    dmulf128.cpp
  HDRS
    ../dmulf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.generic.mul
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  f16mul
  SRCS
    f16mul.cpp
  HDRS
    ../f16mul.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.generic.mul
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  f16mulf
  SRCS
    f16mulf.cpp
  HDRS
    ../f16mulf.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.generic.mul
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  f16mull
  SRCS
    f16mull.cpp
  HDRS
    ../f16mull.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.generic.mul
  COMPILE_OPTIONS
    -O3
)

add_entrypoint_object(
  f16mulf128
  SRCS
    f16mulf128.cpp
  HDRS
    ../f16mulf128.h
  DEPENDS
    libc.src.__support.macros.properties.types
    libc.src.__support.FPUtil.generic.mul
  COMPILE_OPTIONS
    -O3
)

add_header_library(
  expxf16
  HDRS
    expxf16.h
  DEPENDS
    libc.src.__support.CPP.array
    libc.src.__support.FPUtil.cast
    libc.src.__support.FPUtil.fp_bits
    libc.src.__support.FPUtil.multiply_add
    libc.src.__support.FPUtil.nearest_integer
    libc.src.__support.FPUtil.polyeval
    libc.src.__support.macros.attributes
)
